home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 051-075 / disk_052 / tek4010 / devices.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  4KB  |  125 lines

  1. /***************************************************************
  2.  * vt100 - terminal emulator - initialization.
  3.  * Use the preferences baud rate if it is given, use the defaut x-on/x-off
  4.  * characters.
  5.  * DO NOT set then 0 which caused a lot of hangs!!!!!
  6.  *
  7.  *           860823 DBW - Integrated and rewrote lots of code
  8.  *      v2.0 860809 DBW - Major rewrite
  9.  *      v1.1 860720 DBW - Switches, 80 cols, colors, bug fixes
  10.  *      v1.0 860712 DBW - First version released
  11.  *
  12.  
  13.  ***************************************************************/
  14.  
  15. #include "vt100.h"
  16.  
  17. extern char *malloc();
  18.  
  19.  
  20. void InitDevs()
  21. {
  22.  
  23. IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library", 0);
  24. if( IntuitionBase == NULL )
  25.    {
  26.    puts("can't open intuition\n");
  27.    exit(TRUE);
  28.    }
  29.  
  30. GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 0);
  31. if( GfxBase == NULL )
  32.    {
  33.    puts("can't open graphics library\n");
  34.    exit(TRUE);
  35.    }
  36.  
  37. if(( mywindow = (struct Window *)OpenWindow(&NewWindow) ) == NULL)
  38.    {
  39.    puts("cant open window\n");
  40.    if (p_screen != 0) CloseScreen( myscreen );
  41.    exit(TRUE);
  42.    }
  43.  
  44. myviewport   = (struct ViewPort *)ViewPortAddress(mywindow);
  45.  
  46. Read_Request = (struct IOExtSer *)
  47.     AllocMem((long)sizeof(*Read_Request),MEMF_PUBLIC|MEMF_CLEAR);
  48. Read_Request->io_SerFlags = SERF_SHARED;
  49. Read_Request->IOSer.io_Message.mn_ReplyPort = CreatePort("Read_RS",0);
  50. if(OpenDevice(SERIALNAME,NULL,Read_Request,NULL))
  51.    {
  52.    puts("Cant open Read device\n");
  53.    CloseWindow( mywindow );
  54.    if (p_screen != 0) CloseScreen( myscreen );
  55.    DeletePort(Read_Request->IOSer.io_Message.mn_ReplyPort);
  56.    FreeMem(Read_Request,(long)sizeof(*Read_Request));
  57.    exit(TRUE);
  58.    }
  59. Read_Request->IOSer.io_Command = CMD_READ;
  60. Read_Request->IOSer.io_Length = 1;
  61. Read_Request->IOSer.io_Data = (APTR) &rs_in[0];
  62.  
  63. Write_Request = (struct IOExtSer *)
  64.     AllocMem((long)sizeof(*Write_Request),MEMF_PUBLIC|MEMF_CLEAR);
  65. Write_Request->io_SerFlags = SERF_SHARED;
  66. Write_Request->IOSer.io_Message.mn_ReplyPort = CreatePort("Write_RS",0);
  67. if(OpenDevice(SERIALNAME,NULL,Write_Request,NULL))
  68.     {
  69.     puts("Cant open Write device\n");
  70.     CloseDevice(Read_Request);
  71.     DeletePort(Read_Request->IOSer.io_Message.mn_ReplyPort);
  72.     FreeMem(Read_Request,(long)sizeof(*Read_Request));
  73.     DeletePort(Write_Request->IOSer.io_Message.mn_ReplyPort);
  74.     FreeMem(Write_Request,(long)sizeof(*Write_Request));
  75.     CloseWindow( mywindow );
  76.     if (p_screen != 0) CloseScreen( myscreen );
  77.     exit(TRUE);
  78.     }
  79. Write_Request->IOSer.io_Command = CMD_WRITE;
  80. Write_Request->IOSer.io_Length = 1;
  81. Write_Request->IOSer.io_Data = (APTR) &rs_out[0];
  82.  
  83. Read_Request->io_SerFlags = SERF_SHARED;
  84. /* this is where we do the baud rate stuff, TW */
  85. if (p_baud != 0)
  86.   Read_Request->io_Baud = p_baud;
  87. else
  88.   p_baud = Read_Request->io_Baud;
  89. Read_Request->io_ReadLen = 8;
  90. Read_Request->io_WriteLen = 8;
  91. Read_Request->io_RBufLen = 2048;
  92. Read_Request->IOSer.io_Command = SDCMD_SETPARAMS;
  93. DoIO(Read_Request);
  94. Read_Request->IOSer.io_Command = CMD_READ;
  95.  
  96. Timer_Port = CreatePort("Timer Port",0);
  97. Script_Timer_Port = CreatePort("Timer Port",0);
  98.  
  99. if (OpenDevice(TIMERNAME, UNIT_VBLANK, (char *) &Timer, 0) ||
  100.     OpenDevice(TIMERNAME, UNIT_VBLANK, (char *) &Script_Timer, 0)) {
  101.     puts("can't open timer device");
  102.     DeletePort(Timer_Port);
  103.     DeletePort(Script_Timer_Port);
  104.     CloseDevice(Read_Request);
  105.     DeletePort(Read_Request->IOSer.io_Message.mn_ReplyPort);
  106.     FreeMem(Read_Request,(long)sizeof(*Read_Request));
  107.     CloseDevice(Write_Request);
  108.     DeletePort(Write_Request->IOSer.io_Message.mn_ReplyPort);
  109.     FreeMem(Write_Request,(long)sizeof(*Write_Request));
  110.     CloseWindow( mywindow );
  111.     if (p_screen != 0) CloseScreen( myscreen );
  112.     exit(TRUE);
  113.     }
  114.  
  115. Timer.tr_node.io_Message.mn_ReplyPort = Timer_Port;
  116. Timer.tr_node.io_Command = TR_ADDREQUEST;
  117. Timer.tr_node.io_Flags = 0;
  118. Timer.tr_node.io_Error = 0;
  119.  
  120. Script_Timer.tr_node.io_Message.mn_ReplyPort = Script_Timer_Port;
  121. Script_Timer.tr_node.io_Command = TR_ADDREQUEST;
  122. Script_Timer.tr_node.io_Flags = 0;
  123. Script_Timer.tr_node.io_Error = 0;
  124. }
  125.